-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Location conversion tests for relay and parachains #487
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The conversions are the same for all system parachains, so this test could be a macro to dedup the code, but I don't know where we would put that macro or if it's worth the effort. I'm fine with the duplicated code too.
Please see the other comments.
// DescribeTerminus | ||
TestCase { | ||
description: "DescribeTerminus Parent", | ||
location: Location::new(1, Here), | ||
expected_account_id_str: "5GyWtDJP7qaipWRGr4KJ6VUDxRXf4jDnPW6KPTeCekHfqZkD", | ||
}, | ||
TestCase { | ||
description: "DescribeTerminus Sibling", | ||
location: Location::new(1, [Parachain(1111)]), | ||
expected_account_id_str: "5EC5GfEFm9XEBYjXzxb1VseMHsG2VhPeGTGWF9H8tYZnGsSk", | ||
}, | ||
// DescribePalletTerminal | ||
TestCase { | ||
description: "DescribePalletTerminal Parent", | ||
location: Location::new(1, [PalletInstance(50)]), | ||
expected_account_id_str: "5CnwemvaAXkWFVwibiCvf2EjqwiqBi29S5cLLydZLEaEw6jZ", | ||
}, | ||
TestCase { | ||
description: "DescribePalletTerminal Sibling", | ||
location: Location::new(1, [Parachain(1111), PalletInstance(50)]), | ||
expected_account_id_str: "5GFBgPjpEQPdaxEnFirUoa51u5erVx84twYxJVuBRAT2UP2g", | ||
}, | ||
// DescribeAccountId32Terminal | ||
TestCase { | ||
description: "DescribeAccountId32Terminal Parent", | ||
location: Location::new( | ||
1, | ||
[AccountId32 { network: None, id: AccountId::from(ALICE).into() }], | ||
), | ||
expected_account_id_str: "5DN5SGsuUG7PAqFL47J9meViwdnk9AdeSWKFkcHC45hEzVz4", | ||
}, | ||
TestCase { | ||
description: "DescribeAccountId32Terminal Sibling", | ||
location: Location::new( | ||
1, | ||
[ | ||
Parachain(1111), | ||
Junction::AccountId32 { network: None, id: AccountId::from(ALICE).into() }, | ||
], | ||
), | ||
expected_account_id_str: "5DGRXLYwWGce7wvm14vX1Ms4Vf118FSWQbJkyQigY2pfm6bg", | ||
}, | ||
// DescribeAccountKey20Terminal | ||
TestCase { | ||
description: "DescribeAccountKey20Terminal Parent", | ||
location: Location::new(1, [AccountKey20 { network: None, key: [0u8; 20] }]), | ||
expected_account_id_str: "5F5Ec11567pa919wJkX6VHtv2ZXS5W698YCW35EdEbrg14cg", | ||
}, | ||
TestCase { | ||
description: "DescribeAccountKey20Terminal Sibling", | ||
location: Location::new( | ||
1, | ||
[Parachain(1111), AccountKey20 { network: None, key: [0u8; 20] }], | ||
), | ||
expected_account_id_str: "5CB2FbUds2qvcJNhDiTbRZwiS3trAy6ydFGMSVutmYijpPAg", | ||
}, | ||
// DescribeTreasuryVoiceTerminal | ||
TestCase { | ||
description: "DescribeTreasuryVoiceTerminal Parent", | ||
location: Location::new(1, [Plurality { id: BodyId::Treasury, part: BodyPart::Voice }]), | ||
expected_account_id_str: "5CUjnE2vgcUCuhxPwFoQ5r7p1DkhujgvMNDHaF2bLqRp4D5F", | ||
}, | ||
TestCase { | ||
description: "DescribeTreasuryVoiceTerminal Sibling", | ||
location: Location::new( | ||
1, | ||
[Parachain(1111), Plurality { id: BodyId::Treasury, part: BodyPart::Voice }], | ||
), | ||
expected_account_id_str: "5G6TDwaVgbWmhqRUKjBhRRnH4ry9L9cjRymUEmiRsLbSE4gB", | ||
}, | ||
// DescribeBodyTerminal | ||
TestCase { | ||
description: "DescribeBodyTerminal Parent", | ||
location: Location::new(1, [Plurality { id: BodyId::Unit, part: BodyPart::Voice }]), | ||
expected_account_id_str: "5EBRMTBkDisEXsaN283SRbzx9Xf2PXwUxxFCJohSGo4jYe6B", | ||
}, | ||
TestCase { | ||
description: "DescribeBodyTerminal Sibling", | ||
location: Location::new( | ||
1, | ||
[Parachain(1111), Plurality { id: BodyId::Unit, part: BodyPart::Voice }], | ||
), | ||
expected_account_id_str: "5DBoExvojy8tYnHgLL97phNH975CyT45PWTZEeGoBZfAyRMH", | ||
}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Parent and Sibling (parachain) locations do not make sense for a Relay chain.
All of these should be replaced with Child (parachain) locations.
(DescribeTerminus Child, DescribePalletTerminal Child, etc)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
// DescribeTerminus | ||
TestCase { | ||
description: "DescribeTerminus Parent", | ||
location: Location::new(1, Here), | ||
expected_account_id_str: "5GyWtDJP7qaipWRGr4KJ6VUDxRXf4jDnPW6KPTeCekHfqZkD", | ||
}, | ||
TestCase { | ||
description: "DescribeTerminus Sibling", | ||
location: Location::new(1, [Parachain(1111)]), | ||
expected_account_id_str: "5EC5GfEFm9XEBYjXzxb1VseMHsG2VhPeGTGWF9H8tYZnGsSk", | ||
}, | ||
// DescribePalletTerminal | ||
TestCase { | ||
description: "DescribePalletTerminal Parent", | ||
location: Location::new(1, [PalletInstance(50)]), | ||
expected_account_id_str: "5CnwemvaAXkWFVwibiCvf2EjqwiqBi29S5cLLydZLEaEw6jZ", | ||
}, | ||
TestCase { | ||
description: "DescribePalletTerminal Sibling", | ||
location: Location::new(1, [Parachain(1111), PalletInstance(50)]), | ||
expected_account_id_str: "5GFBgPjpEQPdaxEnFirUoa51u5erVx84twYxJVuBRAT2UP2g", | ||
}, | ||
// DescribeAccountId32Terminal | ||
TestCase { | ||
description: "DescribeAccountId32Terminal Parent", | ||
location: Location::new( | ||
1, | ||
[AccountId32 { network: None, id: AccountId::from(ALICE).into() }], | ||
), | ||
expected_account_id_str: "5DN5SGsuUG7PAqFL47J9meViwdnk9AdeSWKFkcHC45hEzVz4", | ||
}, | ||
TestCase { | ||
description: "DescribeAccountId32Terminal Sibling", | ||
location: Location::new( | ||
1, | ||
[ | ||
Parachain(1111), | ||
Junction::AccountId32 { network: None, id: AccountId::from(ALICE).into() }, | ||
], | ||
), | ||
expected_account_id_str: "5DGRXLYwWGce7wvm14vX1Ms4Vf118FSWQbJkyQigY2pfm6bg", | ||
}, | ||
// DescribeAccountKey20Terminal | ||
TestCase { | ||
description: "DescribeAccountKey20Terminal Parent", | ||
location: Location::new(1, [AccountKey20 { network: None, key: [0u8; 20] }]), | ||
expected_account_id_str: "5F5Ec11567pa919wJkX6VHtv2ZXS5W698YCW35EdEbrg14cg", | ||
}, | ||
TestCase { | ||
description: "DescribeAccountKey20Terminal Sibling", | ||
location: Location::new( | ||
1, | ||
[Parachain(1111), AccountKey20 { network: None, key: [0u8; 20] }], | ||
), | ||
expected_account_id_str: "5CB2FbUds2qvcJNhDiTbRZwiS3trAy6ydFGMSVutmYijpPAg", | ||
}, | ||
// DescribeTreasuryVoiceTerminal | ||
TestCase { | ||
description: "DescribeTreasuryVoiceTerminal Parent", | ||
location: Location::new(1, [Plurality { id: BodyId::Treasury, part: BodyPart::Voice }]), | ||
expected_account_id_str: "5CUjnE2vgcUCuhxPwFoQ5r7p1DkhujgvMNDHaF2bLqRp4D5F", | ||
}, | ||
TestCase { | ||
description: "DescribeTreasuryVoiceTerminal Sibling", | ||
location: Location::new( | ||
1, | ||
[Parachain(1111), Plurality { id: BodyId::Treasury, part: BodyPart::Voice }], | ||
), | ||
expected_account_id_str: "5G6TDwaVgbWmhqRUKjBhRRnH4ry9L9cjRymUEmiRsLbSE4gB", | ||
}, | ||
// DescribeBodyTerminal | ||
TestCase { | ||
description: "DescribeBodyTerminal Parent", | ||
location: Location::new(1, [Plurality { id: BodyId::Unit, part: BodyPart::Voice }]), | ||
expected_account_id_str: "5EBRMTBkDisEXsaN283SRbzx9Xf2PXwUxxFCJohSGo4jYe6B", | ||
}, | ||
TestCase { | ||
description: "DescribeBodyTerminal Sibling", | ||
location: Location::new( | ||
1, | ||
[Parachain(1111), Plurality { id: BodyId::Unit, part: BodyPart::Voice }], | ||
), | ||
expected_account_id_str: "5DBoExvojy8tYnHgLL97phNH975CyT45PWTZEeGoBZfAyRMH", | ||
}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Parent and Sibling (parachain) locations do not make sense for a Relay chain.
All of these should be replaced with Child (parachain) locations.
(DescribeTerminus Child, DescribePalletTerminal Child, etc)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✅
[AccountId32 { | ||
network: None, | ||
id: polkadot_core_primitives::AccountId::from(ALICE).into(), | ||
}], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can dedup at least these "Alice" AccountId
s used throughout the test:
[AccountId32 { | |
network: None, | |
id: polkadot_core_primitives::AccountId::from(ALICE).into(), | |
}], | |
[alice.clone()], |
and have at the beginning of the test a
let alice = AccountId32 {
network: None,
id: polkadot_core_primitives::AccountId::from(ALICE).into(),
};
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✔️
// DescribeAccountKey20Terminal | ||
TestCase { | ||
description: "DescribeAccountKey20Terminal Parent", | ||
location: Location::new(1, [AccountKey20 { network: None, key: [0u8; 20] }]), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same for these AccountKey20
s:
location: Location::new(1, [AccountKey20 { network: None, key: [0u8; 20] }]), | |
location: Location::new(1, [bob_20.clone()]), |
with
let bob_20 = AccountKey20 { network: None, key: [123u8; 20] }
(notice I also suggested using non-zero keys)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
☑️
Out of curiosity, what edge-case you want to avoid by eliminating zero keys?
bot fmt |
I don't feel like writing macros just yet, still want to get used to Rust. |
Added location convertion tests.
Polkadot sdk PR
Fixes #488